package model

import (
	"time"
)

// SysTenant 系统租户表
type SysTenant struct {
	BaseModel
	Name         string    `json:"name" gorm:"column:name;comment:租户名称"`
	Code         string    `json:"code" gorm:"column:code;comment:租户编码"`
	Mode         string    `json:"mode" gorm:"column:mode;comment:租户模式(shared_database/separate_schema/separate_database)"`
	DBName       string    `json:"dbName" gorm:"column:db_name;comment:数据库名称"`
	DBSchema     string    `json:"dbSchema" gorm:"column:db_schema;comment:数据库Schema"`
	DBHost       string    `json:"dbHost" gorm:"column:db_host;comment:数据库主机"`
	DBPort       int       `json:"dbPort" gorm:"column:db_port;comment:数据库端口"`
	DBUsername   string    `json:"dbUsername" gorm:"column:db_username;comment:数据库用户名"`
	DBPassword   string    `json:"dbPassword" gorm:"column:db_password;comment:数据库密码"`
	Status       int       `json:"status" gorm:"column:status;comment:租户状态(0-禁用 1-启用)"`
	ExpireTime   time.Time `json:"expireTime" gorm:"column:expire_time;comment:过期时间"`
	MaxUsers     int       `json:"maxUsers" gorm:"column:max_users;comment:最大用户数"`
	MaxStorage   int64     `json:"maxStorage" gorm:"column:max_storage;comment:最大存储空间(MB)"`
	ContactName  string    `json:"contactName" gorm:"column:contact_name;comment:联系人姓名"`
	ContactPhone string    `json:"contactPhone" gorm:"column:contact_phone;comment:联系人电话"`
	ContactEmail string    `json:"contactEmail" gorm:"column:contact_email;comment:联系人邮箱"`
	Remark       string    `json:"remark" gorm:"column:remark;comment:备注"`
}

// TableName 指定表名
func (SysTenant) TableName() string {
	return "sys_tenant"
}
